<?php 
include_once __DIR__."/AutoLoad.php";
include_once __DIR__."/fun_img.php";
$url="http://106.12.90.200/upload";
function uploadFile($url,$file_path,$type){
    $ch = curl_init($url);
    $cfile = new CURLFile($file_path,'image/jpeg',"image{$type}");
    $data = array('zip' => $cfile);
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    $output=curl_exec($ch);
    var_dump("output",$output);

    if($output===false){
        $return_data=[
            "status"=>0,
            "msg"=>curl_error($ch)
        ];
        die(\json_encode($return_data));
    }else if($output !="0"){
        $return_data=[
            "status"=>0,
            "msg"=>$output
        ];
        die(json_encode($return_data));
    }
    curl_close($ch);
    return $output;
}

function getCreatePic($image_dir,$config,$backgroud_path,$save_dir,$type,$url){
    $backgroud_path_mime_type=mime_content_type($backgroud_path);
    if($backgroud_path_mime_type!="image/jpeg"){
        $return_data=[
            "status"=>0,
            "msg"=>"背景图片不是jpg类型"
        ];
        die(json_encode($return_data));
    }
    $dir_info=scandir($image_dir);
    $file_num=count($dir_info);
    if($file_num==2){
        $return_data=[
            "status"=>0,
            "msg"=>"该类型的群二维码目录中不存在图片，请先添加群二维码图片到{$image_dir}里面"
        ];
        die(\json_encode($return_data));
    }
    $comppress_file_name=__DIR__."/image{$type}.zip";
    $zip=new ZipArchive;
    $open_result=$zip->open($comppress_file_name,ZipArchive::CREATE);
    foreach($dir_info as $k=>$v){
        if($v==="."  || $v===".."){
            continue;
        }
        $config["path"]=$image_dir."/{$v}";
        $pic_mine_type=mime_content_type($config["path"]);
        if($pic_mine_type!="image/jpeg"){
            unlink($config["path"]);
            continue;
        }
        $arr_picinfo=array($config);
        $arrtextinfo=array();
        $name=md5(time()).uniqid().mt_rand(100,999);
        $save_name=$save_dir."/".$name.".jpg";
        createpic($backgroud_path,$arr_picinfo,$arrtextinfo,$save_name);
        // $base64_image=base64EncodeImage($save_name);
        $zip->addFile($save_name,$name.".jpg");
        // unlink($save_name);
        unlink($config["path"]);
        $pic_arr[]=$name;
        // yield $base64_image;
    }
    $zip->close();
    $upload_result=uploadFile($url,$comppress_file_name,$type);
    unlink($comppress_file_name);
    return $pic_arr;


}

function compressDir($dir,$type){
    $comppress_file_name=__DIR__."/{$type}.zip";
    $zip=new ZipArchive;
    $open_result=$zip->open($comppress_file_name,ZIPARCHIVE::OVERWRITE);
    if($open_result===true){
        $all_file_arr=scandir($dir);
        foreach($all_file_arr as $k=>$v){
            if($v==="." || $v===".."){
                continue;
            }
            $file_path=$dir."/{$v}";
            try{
                $add_result=$zip->addFile($file_path,$v);
            }catch(\Exception $e){
                return false;
            }
        }
    }else{
        return false;
    }
    $zip->close();
    return $comppress_file_name;
}
$id=$_GET["id"];
$type=$_GET["type"];
$config_file=__DIR__."/config{$id}.php";
if(!file_exists($config_file)){
    $return_data=[
        "status"=>0,
        "msg"=>"请先设置群二维码"
    ];
    die(json_encode($return_data));
}
$config=unserialize(file_get_contents($config_file));
$image_dir=__DIR__."/image".$type;
if(!file_exists($image_dir)){
    $return_data=[
        "status"=>0,
        "msg"=>"二维码图片目录{$image_dir}不存在，请手动创建{$image_dir}目录，并加入属于该群类型的图片"
    ];
    die(json_encode($return_data));
}
$save_dir=__DIR__."/save".$type;
$backgroud_path=__DIR__."/bg/{$type}.jpg";
if(!file_exists($backgroud_path)){
    $return_data=[
        "status"=>0,
        "msg"=>"请添加{$backgroud_path}文件"
    ];
    die(\json_encode($return_data));
}

// $dir_info=scandir($image_dir);
// $file_num=count($dir_info);
// if($file_num==2){
//     $return_data=[
//         "status"=>0,
//         "msg"=>"该类型的群二维码目录中不存在图片，请先添加群二维码图片到{$image_dir}里面"
//     ];
//     die(\json_encode($return_data));
// }
if(!file_exists($save_dir)){
    $create_result=mkdir($save_dir,0777,true);
    if(!$create_result){
        $return_data=[
            "status"=>0,
            "status"=>"创建图片保存目录失败"
        ];
        echo \json_encode($return_data);
        die;
    }
}
// $pic_arr=array();
// var_dump($dir_info);

// foreach($dir_info as $k=>$v){
//     if($v==="."  || $v===".."){
//         continue;
//     }
//     $config["path"]=$image_dir."/{$v}";
//     $arr_picinfo=array($config);
//     $arrtextinfo=array();
//     $save_name=$save_dir."/".$k.".jpg";
//     createpic($backgroud_path,$arr_picinfo,$arrtextinfo,$save_name);
//     $pic_arr[]=base64EncodeImage($save_name);
//     unlink($save_name);
// }
// $compress_result=compressDir($save_dir,$type);
// if($compress_result===false){
//     $return_data=[
//         "status"=>0,
//         "msg"=>"压缩文件失败"
//     ];
//     die(json_encode($return_data));
// }
// $upload=uploadFile($url,$compress_result);
// if($upload===false){
//     $return_data=[
//         "status"=>0,
//         "msg"=>"上传文件{$compress_result}失败,失败的原因是{$upload}"
//     ];
//     die(json_encode($return_data));
// }
// var_dump("pic_arr=",$pic_arr);
$db=Tool::getObject("MysqlClass");
$db->beginTransaction();
try{
    $pic_arr=getCreatePic($image_dir,$config,$backgroud_path,$save_dir,$type,$url);
    // unlink(__DIR__."/image{$type}.zip");
    foreach($pic_arr as $v){
        unlink(__DIR__."/save{$type}/{$v}.jpg");
        $current_time=time();
        $sql="insert into qun_poster(`type`,`c_time`,`pic`) values(?,{$current_time},?)";
        $prepare=$db->prepare($sql);
        $prepare->execute(array($id,$v));
    }
    $db->commit();
    $return_data=[
        "status"=>1,
        "msg"=>"保存图片成功"
    ];
}catch(\Exception $e){
    $db->rollBack();
    $return_data=[
        "status"=>0,
        "msg"=>$e->getMessage()
    ];
    
}
die(json_encode($return_data));
    







